<?php

if (file_exists("../../util/conexao.php")) {
    require_once("../../util/conexao.php");
    require_once("../../util/util.php");
} else {
    require_once("../../../util/conexao.php");
    require_once("../../../util/util.php");
}

class ContasReceberDao {

    public function retornaContasReceber($limite, $arrayDados = "") {

        $conexao = Conexao::conectar();
        $contas = array();

        $somaCondicao = 0;

        if (!empty($arrayDados["cliente"])) {
            $condicaoCliente = "and m.idCliente=" . $arrayDados["cliente"];
        } else {
            $condicaoCliente = "";
        }

        if (!empty($arrayDados["de"]) && !empty($arrayDados["ate"])) {

            if ($arrayDados["tipodata"] == "dv") {
                $condicaoData = "and t.dataVencimento between '" . Util::dataBd($arrayDados["de"]) . "' and '" . Util::dataBd($arrayDados["ate"]) . "'";
            } else {
                $condicaoData = "and t.dataUltimoPagamento between '" . Util::dataBd($arrayDados["de"]) . "' and '" . Util::dataBd($arrayDados["ate"]) . "'";
            }

            $somaCondicao++;
        } else {
            $condicaoData = "";
        }

        if ((!empty($arrayDados["status"])) && ($arrayDados["status"] != "TODOS")) {

            if ($arrayDados["status"] == "EMABERTO") {
                $condicaoStatus = "and t.quitado='N'";
            } elseif ($arrayDados["status"] == "QUITADO") {
                $condicaoStatus = "and t.quitado='S'";
            } elseif ($arrayDados["status"] == "ATRASADO") {
                $condicaoStatus = "and t.dataVencimento < '" . date("Y-m-d") . "' and t.quitado='N'";
            }

            $somaCondicao++;
        } else {
            $condicaoStatus = "";
        }

        if ($limite > 0) {
            $limit = "limit {$limite}";
        } else {
            if ($somaCondicao > 0) {
                $limit = "";
            } else {
                $limit = "limit 5000";
            }
        }

        $query = "select t.id as idT,t.dataVencimento as dataV,t.valor as valor,t.parcela as parcela,
		  v.placa as placa,n.nome as natureza,t.valorPago as parcial,t.quitado as quitado,
		  t.desconto as desconto,t.acrescimo as acrescimo,
		  t.dataUltimoPagamento as dataUltimoPagamento, t.valorMulta,p.nome,
                  t.entrada
		  from tbtitulos t
		  INNER JOIN tbmovimentacao m ON(m.id = t.idMovimento)
                  INNER JOIN tbpessoas p ON (p.id = m.idCliente)
		  LEFT JOIN tbveiculo v ON(v.id = t.idVeiculo)
		  INNER JOIN tbnatureza n ON(m.natureza = n.id)
		  where m.tipo='RECEBIMENTO' and m.deletado='N' and t.deletado='N' " . $condicaoData . " " . $condicaoStatus . " " . $condicaoCliente . " " . $limit;

        $res = mysql_query($query, $conexao);

        $i = 0;
        while ($row = mysql_fetch_object($res)) {
            
            if($row->entrada=="S"){
                $contas[$i]['parcela'] = "<strong>ENTRADA</strong>";
            }else{
                $contas[$i]['parcela'] = $row->parcela;
            }
            
            $contas[$i]['id'] = $row->idT;
            $contas[$i]['vencimento'] = $row->dataV;
            $contas[$i]['parcial'] = $row->parcial;
            $contas[$i]['desconto'] = $row->desconto;
            $contas[$i]['acrescimo'] = $row->acrescimo;
            $contas[$i]['valor'] = $row->valor;            
            $contas[$i]['placa'] = $row->placa;
            $contas[$i]['natureza'] = $row->natureza;
            $contas[$i]['quitado'] = $row->quitado;
            $contas[$i]['dataUltimoPagamento'] = $row->dataUltimoPagamento;
            $contas[$i]['multa'] = $row->valorMulta;
            $contas[$i]['nome'] = $row->nome;
            $i++;
        }

        Conexao::desconectar();
        return $contas;
    }

    public function atualizarValorMulta($codigo, $valorMulta) {
        $conexao = Conexao::conectar();

        $query = "update tbtitulos set valorMulta=" . $valorMulta . " where id=" . $codigo;
        $res = mysql_query($query, $conexao);

        return $res;

        Conexao::desconectar();
    }

    public function atualizarMulta($codigo, $multa) {
        $conexao = Conexao::conectar();

        $query = "update tbtitulos set multa=" . $multa . " where id=" . $codigo;
        $res = mysql_query($query, $conexao);

        return $res;

        Conexao::desconectar();
    }

    public function retornaDadosTitulo($codigo) {

        $conexao = Conexao::conectar();
        $dados = array();

        $query = "select * from tbtitulos where id=" . $codigo . " and deletado='N'";
        $res = mysql_query($query, $conexao);

        $i = 0;
        while ($row = mysql_fetch_object($res)) {
            $dados[$i]['id'] = $row->id;
            $dados[$i]['valor'] = $row->valor;
            $dados[$i]['parcela'] = $row->parcela;
            $dados[$i]['dataPrimeiroPagamento'] = $row->dataPrimeiroPagamento;
            $dados[$i]['dataUltimoPagamento'] = $row->dataUltimoPagamento;
            $dados[$i]['acrescimo'] = $row->acrescimo;
            $dados[$i]['desconto'] = $row->desconto;
            $dados[$i]['valorPago'] = $row->valorPago;
            $dados[$i]['idMovimento'] = $row->idMovimento;
            $dados[$i]['multa'] = $row->multa;
            $dados[$i]['dataVencimento'] = $row->dataVencimento;
            $dados[$i]['valorMulta'] = $row->valorMulta;
            $i++;
        }

        Conexao::desconectar();
        return $dados;
    }

    public function baixarTitulo($arrayDados) {

        $conexao = Conexao::conectar();

        $query = "update tbtitulos set desconto=" . $arrayDados["desconto"] . ",acrescimo=" . $arrayDados["acrescimo"] . ",
		  valorPago=" . $arrayDados["apagar"] . ",quitado='" . $arrayDados["quitado"] . "',dataPrimeiroPagamento='" . $arrayDados["dataPP"] . "',
		  dataUltimoPagamento='" . date("Y-m-d H:i:s") . "' where id=" . $arrayDados["hdcodigo"];
        
        $res = mysql_query($query, $conexao);

        return $res;

        Conexao::desconectar();
    }

    public function verificarTituloEmAberto($codigo) {
        $conexao = Conexao::conectar();

        $query = "select count(*) as total from tbtitulos where idMovimento=" . $codigo . " and quitado='N' and deletado='N'";
        $res = mysql_query($query, $conexao);
        $row = mysql_fetch_object($res);

        return $res . "$" . $row->total;

        Conexao::desconectar();
    }

    public function atualizarStatusMovimento($codigo) {
        $conexao = Conexao::conectar();

        $query = "update tbmovimentacao set quitado='S' where id=" . $codigo;
        $res = mysql_query($query, $conexao);

        Conexao::desconectar();

        return $res;
    }

    public function retornarClientes($conexao) {
        $clientes = array();

        $query = "select id,nome,cpfcnpj from tbpessoas where tipo='CLIENTE' and deletado='N'";
        $res = mysql_query($query, $conexao);

        $i = 0;
        while ($row = mysql_fetch_object($res)) {
            $clientes[$i]["id"] = $row->id;
            $clientes[$i]["nome"] = $row->nome;
            $clientes[$i]["cpf"] = $row->cpfcnpj;
            $i++;
        }

        return $clientes;
    }

    public function retornarVendedores($conexao) {
        $vendedores = array();

        $query = "select id,nome,cpfcnpj from tbpessoas where tipo='FUNCIONARIO' and deletado='N'";
        $res = mysql_query($query, $conexao);

        $i = 0;
        while ($row = mysql_fetch_object($res)) {
            $vendedores[$i]["id"] = $row->id;
            $vendedores[$i]["nome"] = $row->nome;
            $vendedores[$i]["cpf"] = $row->cpfcnpj;
            $i++;
        }

        return $vendedores;
    }

    public function retornarAvalistas($conexao) {
        $avalistas = array();

        $query = "select id,nome,cpfcnpj from tbpessoas where tipo='CLIENTE' and avalista='S' and deletado='N'";
        $res = mysql_query($query, $conexao);

        $i = 0;
        while ($row = mysql_fetch_object($res)) {
            $avalistas[$i]["id"] = $row->id;
            $avalistas[$i]["nome"] = $row->nome;
            $avalistas[$i]["cpf"] = $row->cpfcnpj;
            $i++;
        }

        return $avalistas;
    }

    public function criarMovimento($arrayDados, $conexao) {
        $valorTotal = $arrayDados["parcelas"] * $arrayDados["valorTitulo"];

        $query = "insert into tbmovimentacao(idVeiculo,idFornecedor,valorTotal,idUser,parcelas,natureza,tipo,idVendedor,idAvalista,
		  idCliente,idFinanceira,idCorretor,quitado,formaPagamento,movimentacaoAvulsa)
		  values(0,0," . $valorTotal . "," . $_SESSION["dadosUsuario"]["login"] . "," . $arrayDados["parcelas"] . ",9,'RECEBIMENTO',
		  " . $arrayDados["vendedor"] . "," . $arrayDados["avalista"] . "," . $arrayDados["cliente"] . ",0,0,'N','" . $arrayDados["tipo"] . "','S')";

        $res = mysql_query($query, $conexao);

        return mysql_insert_id();
    }

    public function criarTitulos($arrayDados, $idMovimento, $conexao) {
        $dias = 0;

        for ($i = 0; $i < $arrayDados["parcelas"]; $i++) {
            $query = "insert into tbtitulos(dataVencimento,valor,parcela,juros,idMovimento,idVeiculo)
		              values('" . Util::somarData($arrayDados["vencimento"], $dias) . "'," . $arrayDados["valorTitulo"] . "," . ($i + 1) . ",
					  " . $arrayDados["juros"] . "," . $idMovimento . ",0)";

            $res = mysql_query($query, $conexao);

            if (!$res) {
                break;
            }

            $dias = $dias + 30;
        }

        return $res;
    }

    public function cancelarTitulo($conexao, $arrayDados) {

        $query = "update tbtitulos set motivo_cancelamento='" . $arrayDados['motivo'] . "',deletado='S'
                          where id=" . $arrayDados['id'];

        mysql_query($query, $conexao);

        $to = 'brunovalois@gmail.com,marcone171@hotmail.com';
        $subject = 'AGENCE - Cancelamento de título';
        $message = 'O sistema agence esta enviando esse e-mail para informar que um titulo foi cancelado pelo usuario '.$_SESSION["dadosUsuario"]["nomeUser"].'.';
        $headers = 'From: agence@grupopiaba.com.br' . "\r\n" .
                   'X-Mailer: PHP/' . phpversion();

        mail($to, $subject, $message, $headers);       
    }

    public function retornaNomeCliente($idCliente){
        
        $conexao = Conexao::conectar();
        
        $query = "select nome from tbpessoas where id=".$idCliente;
        $res   = mysql_query($query,$conexao);
        $row   = mysql_fetch_object($res);
        
        Conexao::desconectar();
        
        return $row->nome;
    }
    
    public function retornaTitulosMovimento($conexao, $idMovimento) {

        $arrayTitulos = array();
        
        $query = "select t.id,t.dataVencimento,t.valor,t.parcela,m.valorTotal,
                  t.entrada
                  from tbtitulos t
                  inner join tbmovimentacao m on(m.id = t.idMovimento)
                  where m.id=".$idMovimento;
        
        $res   = mysql_query($query,$conexao);
        $num   = mysql_num_rows($res);
        
        if($num>0)
        {
            $i=0;
            while($row = mysql_fetch_object($res))
            {               
               ($row->entrada=="S") ? $parcela = "ENTRADA" : $parcela = $row->parcela;
               $arrayTitulos[$i]["parcela"] = $parcela; 
                
               $arrayTitulos[$i]["id"] = $row->id;                              
               $arrayTitulos[$i]["dataVencimento"] = $row->dataVencimento;
               $arrayTitulos[$i]["valor"] = $row->valor;
               $arrayTitulos[$i]["valorTotal"] = $row->valorTotal;
               $i++;
            }
        }
        else
        {
            return $arrayTitulos;
        }
        
        return $arrayTitulos;
    }
    
    public function atualizarTitulos($titulos,$conexao){
        
        $retorno = true;
        
        for($i=0; $i<count($titulos); $i++){
            
            $query = "update tbtitulos set dataVencimento='".$titulos[$i]['data']."',valor=".$titulos[$i]['valor']."
                      where id=".$titulos[$i]['id'];
            $res   = mysql_query($query,$conexao);
            
            if(!$res){
                $retorno = false;
                break;
            }            
        }
        
        return $retorno;
    }
}

?>